#include"header.h"

template<typename T>

//void function(T& argument);
void function(T argument) 
{

	//cout << typeid(&argument).name << endl;
}



template<typename T, typename I>
auto func(T& t, I i) -> decltype(t[i])
{
	return t[i];
}

int main()
{

	int i = 10;
	const int ci = 10;
	const int& ri = 10;
	function(i);

	cout << typeid(ri).name() << endl;

	auto x = 10;
	//auto x(10);

	// std::initializer_list<>
	auto l = { 1,2,3};
	//auto l{ 10 };


	// std:function 
	auto compare = [](const auto& p1, const auto& p2) { return *p1 < *p2; };

	std::nullptr_t ptr = nullptr;

	for (const auto& i : l)
	{
		cout << i << " ";
	}

	return 0;
}

